#!/usr/bin/env python 
# -*- coding: UTF-8 -*-


import rospy 
from std_msgs.msg import String  

def talker():
    pub = rospy.Publisher('chatter', String, queue_size=10)
      #Publisher函数创建发布节点（topic名‘chatter’，消息类型String，queue_size发布消息缓冲区大小都是未被接收走的）
    
    rospy.init_node('talker', anonymous=True)
      #启动节点talker，同时为节点命名，若anoymous为真则节点会自动补充名字，实际名字以talker_322345等表示，
      #若为假，则系统不会补充名字，采用用户命名。如果有重名，则最新启动的节点会注销掉之前的同名节点
    
    rate = rospy.Rate(10) # 10hz
      #延时的时间变量赋值，通过rate.sleep()实现延时
    
    while not rospy.is_shutdown():
           # 判定开始方式，循环发送，以服务程序跳出为终止点 一般ctrl+c也可
        
        hello_str = "hello world %s" % rospy.get_time()
          # 数据变量的内容 rospy.get_time() 是指ros系统时间，精确到0.01s 
        
        rospy.loginfo(hello_str)
          #在运行的terminal界面info 出信息，可不加，可随意改
        
        pub.publish(hello_str)
          #发布数据 必须发布
        
        rate.sleep()
          # 按rospy.Rate()设置的速率延迟 

if __name__ == '__main__':
    try:
        talker()
    except rospy.ROSInterruptException:
        pass


